The efficient and persistent storage of electronic data is one of the most important aspects of modem business. Electronic data may contain information from all aspects of business and life in general. Therefore, data must not only be stored efficiently and effectively, but that data must also be stored in a manner to ensure the veracity of the data. Corruption of this data may have enormous consequences, especially in instances in which the error is not “caught”, which may cause incorrect results and further inefficiencies. One method and system utilized to promote data integrity is a redundant array of inexpensive disks (RAID) system, which may provide a group of drives in a system that will continue to provide access to data even in the event of drive failure. However, data corruption may still occur in a RAID system. For example, data corruption has occurred in the past because disk drives had erroneously reported successful completion of WRITE commands that had not, in fact, been successfully completed. This may occur due to disk drive vendor defects, and the like.
Additionally, some controllers of RAID system may not handle “unreliable drive” type errors. One method of addressing this problem was to rely on rigorous pre-certification of disk drives, but such a reliance may be unsuitable as certain manufacturers may desire further guarantees of drive reliability. Other methods utilized to address this problem include a separate “data scrubber” process, issue all write requests with verify requested, calculate and store a CRC along with the data, and the like. However, these solutions may involve significant performance degradation. Further, the inclusion of CRC may require specialized CRC hardware in order to avoid performance degradation, thereby making such an option unsuitable for existing devices and may require extensive modifications.
Therefore, it would be desirable to provide a system and method for data verification in a RAID system.